// @ts-ignore
/* eslint-disable */
import { requestAuth } from '@/utils/request';

/** 获取用户列表 */
export async function fetchUserData(data: {
  current: number;
  size: number;
  params: {
    column: string;
    type: string;
    values?: string;
  }[];
}) {
  return requestAuth({
    method: 'POST',
    url: '/api/system/userInfo/page',
    data,
  });
}

/** 校验用户账号是否重复 */
export async function checkUserName(data: { id?: string; userName: string }) {
  return requestAuth({
    method: 'POST',
    url: '/api/system/userInfo/check',
    data,
  });
}

/** 新增用户 */
export async function addUser(data: {
  userName: string; // 用户账号
  nickName?: string; // 用户昵称
  avatarPathId?: string; // 用户头像id
  phone?: string; // 用户手机号
  userType: string; // 用户类型
  userStatus: string; // 用户状态
  userDetailInfoCreateReqVo: {
    realName?: string; // 真实姓名
    identity?: string; // 身份证
    staffId?: string; // 员工号
    sex?: string; // 性别
    email?: string; // 用户邮箱
    remark?: string; // 备注
  }; // 用户详情
}) {
  return requestAuth({
    method: 'POST',
    url: '/api/system/userInfo/save',
    data,
  });
}

/** 修改用户 */
export async function modifyUser(data: {
  id: string; // 用户id
  userName: string; // 用户账号
  nickName?: string; // 用户昵称
  avatarPathId?: string; // 用户头像id
  phone?: string; // 用户手机号
  userType: string; // 用户类型
  userStatus: string; // 用户状态
  userDetailInfoUpdateReqVo: {
    id?: string; // 详情id
    realName?: string; // 真实姓名
    identity?: string; // 身份证
    staffId?: string; // 员工号
    sex?: string; // 性别
    email?: string; // 用户邮箱
    remark?: string; // 备注
  }; // 用户详情
}) {
  return requestAuth({
    method: 'POST',
    url: '/api/system/userInfo/update',
    data,
  });
}

/** 删除用户 */
export async function deleteUserById(data: { id: string }) {
  return requestAuth({
    method: 'POST',
    url: '/api/system/userInfo/delete',
    data,
  });
}

/** 批量删除用户 */
export async function batchDeleteUserByIds(data: { ids: string[] }) {
  return requestAuth({
    method: 'POST',
    url: '/api/system/userInfo/deleteBatch',
    data,
  });
}

/** 重置密码 */
export async function resetPassword(data: { id: string }) {
  return requestAuth({
    method: 'POST',
    url: '/api/system/userInfo/resetPassword',
    data,
  });
}

/** 获取用户归属的机构Id列表 */
export async function fetchUserDepartmentIds(data: { userId: string }) {
  return requestAuth({
    method: 'POST',
    url: '/api/system/userInfo/getOrganListByUserId',
    data,
  });
}

/** 根据用户归属的机构获取关联的岗位 */
export async function fetchUserJobWithDepartment(data: { userId: string; organId: string }) {
  return requestAuth({
    method: 'POST',
    url: '/api/system/userInfo/getUserOrganPostListByUserId',
    data,
  });
}

/** 根据用户归属的机构获取关联的角色 */
export async function fetchUserRoleWithDepartment(data: { userId: string; organId: string }) {
  return requestAuth({
    method: 'POST',
    url: '/api/system/userInfo/getUserOrganRoleListByUserId',
    data,
  });
}

/** 更新用户归属机构、岗位以及角色 */
export async function updateUserAscription(data: {
  userId: string;
  userOrganDataRelationList: {
    organId: string;
    postIds: string[];
    roleIds: string[];
  }[];
}) {
  return requestAuth({
    method: 'POST',
    url: '/api/system/userInfo/bindOrganData',
    data,
  });
}
